Popular Searches
Popular Course Categories
Popular Courses

Publishing Flutter App to Google Play Store

Publishing Flutter App to Google Play Store

Flutter Deployment


Publishing Flutter App to Google Play Store


Publishing a Flutter application to the Google Play Store means preparing the application, creating a production-ready Android App Bundle (AAB), configuring Google Play Console, completing the required app information, testing the release, and submitting it for review.


For new Android applications, Google Play uses the Android App Bundle format as the standard publishing format. Flutter provides the flutter build appbundle command for generating the release bundle. :contentReference[oaicite:0]{index=0}




1. What is Google Play Store?


Google Play Store is Google's official distribution platform for Android applications. Developers can publish applications so that users can discover, install, update, and use them on compatible Android devices.


A Flutter application can be developed using Flutter and Dart and then packaged as an Android App Bundle for Google Play distribution.




2. Flutter App Publishing Flow


Flutter Application
        ↓
Complete Development
        ↓
Test Application
        ↓
Prepare Production Configuration
        ↓
Update Version
        ↓
Configure Application ID
        ↓
Configure Release Signing
        ↓
Build Android App Bundle
        ↓
Create / Configure Play Console App
        ↓
Complete Store Listing
        ↓
Complete App Content Information
        ↓
Create Testing Release
        ↓
Test Application
        ↓
Create Production Release
        ↓
Submit for Review
        ↓
Google Play Review
        ↓
Application Published



3. Requirements Before Publishing


Before publishing a Flutter application, several development and Google Play requirements should be completed.



  • A working Flutter application

  • Flutter SDK and Android development environment

  • Android SDK

  • Android Studio or another suitable development environment

  • A Google Play Console developer account

  • A unique application ID

  • Production application icon

  • Production application name

  • Application screenshots

  • Application description

  • Privacy policy where required

  • Data safety information

  • Content rating information

  • Target audience information

  • Release signing configuration

  • Production Android App Bundle




4. Check Flutter Environment


Before creating the release build, verify the Flutter development environment.


flutter doctor

For detailed information:


flutter doctor -v

Also verify the Flutter version:


flutter --version



5. Prepare the Flutter Project


Make sure the project is in a stable state before creating the production build.


Get Dependencies


flutter pub get

Check for Outdated Packages


flutter pub outdated

Clean Previous Build Files


flutter clean
flutter pub get



6. Test the Application Before Publishing


Never publish an application without testing the complete production workflow.


Important Areas to Test



  • Application startup

  • Login and registration

  • Navigation

  • API requests

  • Database operations

  • Firebase services

  • Push notifications

  • Image loading

  • File upload and download

  • Payment functionality

  • Forms and validation

  • Permissions

  • Deep links

  • Offline behavior

  • Error handling

  • Application update behavior




7. Test Release Mode


A debug build and a release build can behave differently. Therefore, test the application in release mode before publishing.


flutter run --release

Testing release mode helps identify problems that may not appear during normal debug development.




8. Update Application Version


Flutter applications commonly define their version in pubspec.yaml.


version: 1.0.0+1







PartPurpose
1Major version
0Minor version
0Patch version
1Build number

Example


version: 1.2.0+10

When publishing an update, the Android version code must be greater than the version code of the currently published version. The package name must remain the same and the update must use the appropriate signing identity. :contentReference[oaicite:1]{index=1}




9. Configure a Unique Application ID


The Android application ID uniquely identifies the application on Google Play.


Example


applicationId = "com.companyname.myapp"

Choose the application ID carefully because the package identity is important for future updates.


Example Project Identity


Application Name: My Flutter Store
Application ID: com.example.mystore
Version: 1.0.0
Build Number: 1



10. Configure the Application Name


The production application should use its final public name.


For Android, review the application label in the manifest:


    android:label="My Flutter Store"
    android:icon="@mipmap/ic_launcher">



11. Configure the Application Icon


The default Flutter application icon should normally be replaced with the final production icon.


Icon Checklist



  • Use the final brand logo.

  • Check the icon on different Android devices.

  • Make sure the icon is not blurry.

  • Check adaptive icon configuration.

  • Verify that the icon is correctly displayed in the launcher.

  • Use appropriate artwork and avoid misleading store branding.




12. Review Android Manifest


The Android manifest is located at:


android/app/src/main/AndroidManifest.xml

Review application configuration, permissions, activities, services, deep links, and other Android-specific settings before release.


Example



   

            android:label="My Flutter App"
        android:icon="@mipmap/ic_launcher">
        ...
   




13. Review Android Permissions


Only request permissions that are required by the application.









Permission TypePossible Purpose
InternetAPI and network communication
CameraTaking photographs or scanning
LocationLocation-based functionality
NotificationsPush or local notifications
Media/File AccessWorking with files or media where permitted

Also remember that third-party packages can introduce Android permissions, so review the final application configuration.




14. Configure Production API


Make sure the release application communicates with production services rather than development servers.


Development URL


http://localhost:3000

Production URL


https://api.example.com

Before publishing, verify:



  • Production API URLs

  • Authentication configuration

  • Database configuration

  • Firebase project

  • Payment gateway configuration

  • Push notification configuration

  • HTTPS configuration




15. Configure Release Signing


Android applications distributed through Google Play need to be signed. Flutter's Android release process supports configuring a release signing key, and Google Play App Signing can manage the app signing key for distribution.


Important Signing Files


android/key.properties
upload-keystore.jks

Signing credentials should be kept private and should not be committed to public source control.




16. Generate the Android App Bundle


The Android App Bundle is the preferred publishing format for Google Play.


flutter build appbundle

Flutter creates the release bundle at:


build/app/outputs/bundle/release/app.aab

Flutter's documentation identifies App Bundle as the preferred Play Store release format. :contentReference[oaicite:2]{index=2}




17. AAB vs APK









FeatureAABAPK
Full NameAndroid App BundleAndroid Package
Google Play PublishingPreferred formatNot the standard format for new Play apps
Direct InstallationNot normally installed directlyCan be installed directly
OptimizationGoogle Play generates optimized APKsDeveloper distributes the APK
File Extension.aab.apk



18. Create a Google Play Console Account


Google Play Console is the platform used to create, configure, test, and publish Android applications on Google Play.


Before publishing, the developer must provide the required developer account information and complete applicable verification and Play Console requirements. :contentReference[oaicite:3]{index=3}


Account Information



  • Developer identity information

  • Legal information

  • Contact email

  • Contact phone number

  • Payment profile where applicable

  • Developer account information




19. Create a New App in Play Console


After signing in to Google Play Console, create a new application and provide the initial app information.


Typical Information



  • Application name

  • Default language

  • Application type

  • Free or paid status

  • Developer contact information


After creating the app, Play Console provides a dashboard containing the tasks that must be completed before launch. :contentReference[oaicite:4]{index=4}




20. Play Console Dashboard


The Play Console dashboard guides developers through important setup and publishing tasks.


Play Console
    ↓
Select Application
    ↓
Dashboard
    ↓
Complete App Setup
    ↓
Testing
    ↓
Production Release
    ↓
Review and Publish



21. Complete Store Listing


The store listing is the information users see when viewing the application on Google Play.


Important Store Listing Information



  • App name

  • Short description

  • Full description

  • Application icon

  • Screenshots

  • Feature graphic where applicable

  • Category

  • Tags where applicable

  • Contact information


Google recommends that store listing information accurately describe what the application actually does. Misleading descriptions or screenshots can cause problems during review. :contentReference[oaicite:5]{index=5}




22. Write a Good App Description


Example Short Description


Manage your daily tasks with a simple and powerful Flutter application.

Example Full Description


My Flutter App helps users organize their daily tasks,
track progress, and manage important activities from
a simple mobile interface.

Features:
• Create tasks
• Update tasks
• Mark tasks as completed
• Search tasks
• Organize daily activities


The description should accurately represent the actual functionality of the application.




23. Upload Screenshots


Screenshots demonstrate the application's user interface and help users understand its functionality before installation.


Recommended Screenshot Preparation



  • Capture the final production application.

  • Use clear and readable screens.

  • Show important features.

  • Avoid development/debug information.

  • Use consistent visual presentation.

  • Make sure screenshots accurately represent the current application.




24. Select Application Category


Select the category that accurately represents the purpose of the application.


Example Categories



  • Education

  • Business

  • Finance

  • Productivity

  • Shopping

  • Entertainment

  • Health & Fitness

  • Tools


The selected category should match the actual functionality of the application.




25. Provide Contact Details


Provide appropriate contact information so users and Google Play can contact the developer where required.



  • Developer email

  • Website where applicable

  • Support information

  • Phone number where required




26. Privacy Policy


Applications that collect or process user data may need to provide a privacy policy and complete the applicable Data safety information in Play Console.


The privacy policy should accurately explain how the application collects, uses, stores, and shares user information.


Privacy Policy Topics



  • Data collected

  • Purpose of data collection

  • Data sharing

  • Data retention

  • Security practices

  • User rights

  • Contact information


Google Play requires developers to provide applicable privacy policy and Data safety information before submission. :contentReference[oaicite:6]{index=6}




27. Complete Data Safety Section


The Data safety section communicates information about how the application collects, shares, and handles user data.


Examples of Data Categories



  • Personal information

  • Financial information

  • Location

  • Photos and videos

  • App activity

  • Device or other identifiers


The answers should accurately reflect the application's behavior and the behavior of included SDKs and services.




28. Complete Content Rating


Google Play requires developers to provide information used to determine the appropriate content rating for an application.


Questions Can Include Topics Such As



  • Violence

  • Sexual content

  • Language

  • Controlled substances

  • Gambling

  • User-generated content


Answer the questionnaire according to the actual content and functionality of the application.




29. Select Target Audience


Provide accurate information about the intended audience of the application.


If the application is intended for children or includes children as part of its target audience, additional Google Play requirements may apply.




30. App Access and Login Credentials


If reviewers cannot access important functionality without logging in, provide the required review access information.


Example


Demo Email:
[email protected]

Demo Password:
DemoPassword123


Do not use invalid or expired credentials. Google Play requires developers to provide an active demo account and other resources needed for review when app functionality is restricted by login. :contentReference[oaicite:7]{index=7}




31. Target API Level


Google Play has target API level requirements that change over time. As of August 31, 2026, new apps and app updates generally need to target Android 16 (API level 36) or higher, with separate requirements for certain form factors such as Wear OS and Android TV. :contentReference[oaicite:8]{index=8}


Before publishing, verify the current Google Play target API requirements and configure the Flutter Android project accordingly.


Example


targetSdk = 36

The exact configuration should match the Android Gradle setup and current Flutter/Android tooling used by the project.




32. Create an Internal Testing Release


Testing is an important part of the Google Play publishing process. Play Console provides internal, closed, and open testing tracks before production.


Testing Flow


App Bundle
    ↓
Internal Testing
    ↓
Closed Testing
    ↓
Open Testing
    ↓
Production

Internal testing is useful for quickly distributing a build to a small group of testers.




33. Internal Testing


Internal testing allows developers to distribute an application to a limited group of testers before making it publicly available.


Google Play currently supports an internal testing track with up to 100 selected testers. :contentReference[oaicite:9]{index=9}


Internal Testing Process



  1. Open the application in Play Console.

  2. Go to the testing section.

  3. Select Internal testing.

  4. Create a release.

  5. Upload the AAB.

  6. Add testers.

  7. Save the release.

  8. Roll out the testing release.

  9. Share the testing access with testers.




34. Closed Testing


Closed testing allows a selected group of testers to evaluate the application before public release.


It is useful for applications that need more extensive testing than a small internal team can provide.


Important Requirement for Some Personal Developer Accounts


Personal developer accounts created after November 13, 2023 currently have specific testing requirements before production access. Google Play states that such accounts must run a closed test with at least 12 testers opted in continuously for at least 14 days before applying for production access. :contentReference[oaicite:10]{index=10}




35. Open Testing


Open testing allows a broader group of users to participate in testing through Google Play.


Users can join the test and provide feedback before the production release.




36. Create a Production Release


After completing the required setup and testing, create a production release.


General Process



  1. Open Play Console.

  2. Select the application.

  3. Open the Production track.

  4. Create a new release.

  5. Upload the Android App Bundle.

  6. Review the release details.

  7. Add release notes.

  8. Save the release.

  9. Review the changes.

  10. Submit or roll out the release as permitted by the account and Play Console workflow.


Google Play documents production as a release track available for making the application available to users in selected countries and regions. :contentReference[oaicite:11]{index=11}




37. Upload the Android App Bundle


The Flutter-generated AAB can be uploaded to the appropriate Play Console release track.


Flutter Command


flutter build appbundle

Generated File


build/app/outputs/bundle/release/app.aab

Upload this production bundle to Play Console after completing release signing and testing.




38. Add Release Notes


Release notes explain what is new or improved in the current application version.


Example


Version 1.2.0

• Improved application performance
• Added new task management features
• Improved login experience
• Fixed notification issues
• Improved overall stability


Release notes should describe actual changes in the submitted version.




39. Review Release Before Publishing


Before submitting the application, carefully review all information.


Final Review



  • Application name

  • Application ID

  • Version code

  • Version name

  • App bundle

  • Store listing

  • Screenshots

  • Description

  • Privacy policy

  • Data safety information

  • Content rating

  • Target audience

  • App access information

  • Permissions

  • Pricing

  • Countries/regions

  • Release notes




40. Pricing and Availability


Configure whether the application is free or paid and select the countries or regions where the application should be distributed.


Pricing and availability settings should be reviewed carefully because changing some commercial settings later can have additional implications.




41. Google Play Review


After submitting the application, Google Play may review the application and its associated information before it becomes publicly available.


Review time can vary. Google notes that certain developer accounts may receive longer review times, including up to seven days or longer in exceptional cases. :contentReference[oaicite:12]{index=12}


Possible Review Outcomes


Submitted
    ↓
In Review
    ↓
Approved
    ↓
Published

If Google identifies a policy or technical issue, the developer may need to make corrections and submit a new version or updated information.




42. Common Reasons for Publishing Problems













ProblemPossible Cause
Version code errorBuild number is not greater than the previous version
Package name issueApplication ID does not match the existing application
Signing problemIncorrect signing configuration
Target API problemApplication does not meet current target API requirements
Missing privacy informationRequired privacy policy or Data safety information is incomplete
Login access problemReviewers cannot access restricted application functionality
Misleading store listingScreenshots or descriptions do not accurately represent the app
Policy issueApplication or content does not comply with Google Play policies
Testing requirementApplicable developer account has not completed required testing



43. Updating an Existing Flutter App


Publishing an update is different from publishing the first version.


Update Requirements



  • Use the same package/application ID.

  • Increase the version code.

  • Use the correct signing configuration.

  • Build a new AAB.

  • Test the update.

  • Upload the new AAB.

  • Provide release notes.


Google Play requires the updated app bundle to use the same package name, a greater version code, and the appropriate signing certificate as the existing application. :contentReference[oaicite:13]{index=13}




44. Example: Updating a Flutter App


Previous Version


version: 1.0.0+1

New Version


version: 1.1.0+2

Build


flutter clean
flutter pub get
flutter build appbundle

Output


build/app/outputs/bundle/release/app.aab

Upload the new AAB to the appropriate Play Console track.




45. Play App Signing


Google Play App Signing is used to manage the app signing key for applications distributed through Google Play.


Concept


Developer
   ↓
Upload Key
   ↓
Google Play
   ↓
App Signing Key
   ↓
Optimized APKs
   ↓
Users' Devices

Keep the upload keystore and credentials secure even when Play App Signing is enabled.




46. App Bundle Processing


When an AAB is uploaded, Google Play can generate optimized APKs appropriate for users' devices.


Flutter App
    ↓
AAB
    ↓
Google Play Processing
    ↓
Device-specific APKs
    ↓
User Installation

This is one of the main advantages of using the Android App Bundle publishing model.




47. Check the Uploaded Bundle


Play Console provides tools for inspecting uploaded app bundles and the APKs generated from them.


Developers can review version information, supported devices, and generated artifacts through the releases and bundles area of Play Console. :contentReference[oaicite:14]{index=14}




48. Google Play Technical Quality


Before publishing, test application stability and performance. Google Play monitors technical quality indicators such as crashes and application-not-responding events.


Applications should be tested thoroughly to avoid production crashes, ANRs, broken functionality, and excessive resource usage. :contentReference[oaicite:15]{index=15}


Performance Checklist



  • Fast application startup

  • Smooth scrolling

  • Efficient API requests

  • Efficient image loading

  • Low unnecessary memory usage

  • Stable navigation

  • Reliable background operations

  • Proper error handling




49. Security Checklist



  • Do not hard-code passwords.

  • Do not publish private API keys.

  • Protect authentication tokens.

  • Use HTTPS.

  • Secure signing credentials.

  • Do not commit keystore files to public repositories.

  • Remove development credentials.

  • Use production security rules.

  • Review Firebase security rules.

  • Test authentication and authorization.




50. Complete Google Play Publishing Checklist




























TaskStatus
Flutter project tested
Release mode tested
Application name finalized
Application icon finalized
Application ID verified
Version updated
Build number increased
Production API configured
Permissions reviewed
Firebase configuration checked
Signing configured
Keystore protected
AAB generated
Store listing completed
Screenshots uploaded
Privacy policy completed
Data Safety completed
Content rating completed
Target audience completed
App access information completed
Testing completed
Production release created
Release notes added
Final review completed



51. Complete Practical Publishing Example


Step 1: Clean the Project


flutter clean

Step 2: Get Dependencies


flutter pub get

Step 3: Test the Application


flutter run --release

Step 4: Update Version


version: 1.0.0+1

Step 5: Build the App Bundle


flutter build appbundle

Step 6: Find the AAB


build/app/outputs/bundle/release/app.aab

Step 7: Open Google Play Console


Sign in to Play Console and select or create the application.


Step 8: Complete App Setup


Complete the required store listing, app content, data safety, content rating, target audience, and other required information.


Step 9: Create a Testing Release


Upload the AAB to an appropriate testing track and test the application.


Step 10: Create Production Release


After completing the applicable testing and setup requirements, create the production release and submit it through the Play Console workflow.




52. Best Practices



  • Always test the release build before publishing.

  • Use Android App Bundle for Google Play publishing.

  • Keep the application ID stable.

  • Increase the version code for every update.

  • Protect the upload keystore.

  • Never publish private credentials.

  • Use production APIs in the release build.

  • Complete the Data safety section accurately.

  • Provide valid reviewer access when required.

  • Make store screenshots match the actual application.

  • Keep application descriptions accurate.

  • Test on multiple physical Android devices.

  • Use internal or closed testing before production where appropriate.

  • Check current Google Play requirements before every major release.

  • Keep a secure copy of production release artifacts.




53. Common Interview Questions


Q1. What is the preferred format for publishing a new Flutter Android application on Google Play?


The Android App Bundle (AAB) is the standard publishing format for new applications on Google Play.


Q2. Which Flutter command creates an AAB?


flutter build appbundle

Q3. Where is the Flutter-generated AAB located?


build/app/outputs/bundle/release/app.aab

Q4. What is an application ID?


The application ID uniquely identifies an Android application and is used by Google Play to identify the application package.


Q5. Why must the version code be increased?


Google Play uses the version code to distinguish newer Android application builds from older builds.


Q6. What is Google Play Console?


Google Play Console is the platform developers use to configure, test, publish, update, and monitor Android applications distributed through Google Play.


Q7. What is the purpose of internal testing?


Internal testing allows developers to distribute an application to a small group of testers before wider distribution.


Q8. What is an Android App Bundle?


An Android App Bundle is a publishing package containing an application's compiled resources and code. Google Play can use it to generate optimized APKs for users' devices.


Q9. Why is release signing important?


Android applications need appropriate digital signing for distribution and updates.


Q10. What should be checked before publishing?


Application identity, version, signing, store listing, privacy information, Data safety, content rating, target audience, testing, permissions, production configuration, and the final AAB should all be reviewed.




54. Summary


Publishing a Flutter application to Google Play Store involves much more than generating an APK. The application should first be tested and prepared for production, configured with the correct application ID and version, digitally signed, and built as an Android App Bundle.


The overall process can be summarized as:


Develop
   ↓
Test
   ↓
Prepare Release
   ↓
Configure Signing
   ↓
Build AAB
   ↓
Create Play Console App
   ↓
Complete Store Listing
   ↓
Complete App Content
   ↓
Testing Track
   ↓
Production Release
   ↓
Google Play Review
   ↓
Published App

Google Play requirements can change over time, so developers should verify the current Play Console policies, target API requirements, testing requirements, and publishing requirements before submitting each production release. :contentReference[oaicite:16]{index=16}




55. Learn Flutter with JustAcademy


JustAcademy Flutter Training Course


Register for Flutter Course Demo


whatsapp